There are growing demands for wireless communication networks, such as wireless LANs (local area networks) defined in the IEEE (Institute of Electrical and Electronics Engineers) 802.11 standards, than ever before, and speed of data transmissions over such a network has become faster and faster. As demands for wireless communication networks increases, enhancement of security techniques has been required. In the IEEE 802.11i standard, TKIP (Temporal Key Integrity Protocol) encryption method and CCMP (Counter Mode with Cipher Block Chaining MAC Protocol) encryption method are standardized to take place of conventional WEP (Wired Equivalent Privacy) encryption method. The TKIP encryption method is defined such that encryption is performed by using, as an encryption algorithm, the RC4, and falsification detection is to be performed by computing a MIC (Message Integrity Check) and an ICV (Integrity Check Value) by using WEP encryption method.
The method for computing a MIC according to IEEE 802.11i will be discussed below. If TKIP has been selected as an encryption method for transferring an encrypted packet, a MIC is computed when a packet is transmitted, and the thus-computed MIC is set within a field (hereinafter, “MIC field”) preceded by the frame body of the transmitted packet. When the packet is received, a MIC is computed and compared against a value of the MIC in the MIC field of the received packet to thereby perform integrity check. It is determined that, if these MICs fail to match, the received packet is to be discarded. Data, based on which the MIC is computed, includes a source address, a destination address, and a frame body. MIC computation is performed for each of MSDUs (MAC Service Data Units) generated at a layer higher than MAC layer. The method for computing the MIC is defined in IEEE 802.11i. Specifically, first MIC computation is performed based on a MIC key and a first block of data, the data being obtained by dividing a target packet into blocks (32 bits each) of data and rearranging the blocks of data into a sequential order of destination address, source address, padding, frame body, and padding. An operation of computing a MIC based on a result of this MIC computation and a next block of the rearranged data is repeatedly performed. An eventual result of the MIC computations is employed as an MIC for integrity check. MIC computation for a frame that is divided into fragments (hereinafter, “fragment frames”) is performed such that a MIC of a fragment frame is computed by using, in place of a MIC key, a result of MIC computation performed for a preceding fragment frame. By computing a MIC and performing integrity check by using the MIC as discussed above, packet falsification in a wireless communication network is prevented.
Conventionally, the TKIP encryption method is standardized so as to allow replacement by the WEP encryption method relatively easily. MIC computation in the TKIP encryption method is basically performed by software rather than by hardware. However, when MIC computation is performed by software, processing time in microprocessor can disadvantageously increase, thereby causing data transmission speed to drop. MIC computation can be performed, as a technique for preventing such drop in data communication speed, at high speed through hardware. For instance, Japanese Patent Publication Laid-Open No. 2007-086608 discloses a technique for preventing drop in transfer rate by performing MIC computation by hardware and, when a packet is to be retransmitted, by reusing a MIC that has been computed in advance. Japanese Patent Publication Laid-Open No. 2006-311394 discloses a technique for computing an MIC accurately even in an environment where multiple wireless communications are carried out simultaneously and receipt of a fragment frame from another wireless station while receiving fragment frames from one wireless station can occur by storing computed MICs on a wireless-station-by-wireless-station basis.
In view of the above circumstances, a technique that allows efficient MIC computation by hardware and simultaneously effectively prevents drop in transfer rate has been desired.
The present invention has been made in view of the above circumstances, and an object of the present invention is to provide a wireless communication apparatus that allows computation of a calculation value for use in detecting packet falsification by hardware efficiently and effective prevention of drop in transfer rate and a wireless communication method.